ВЕЙВЛЕТ-ОБРОБКА СИГНАЛІВ У СЕРЕДОВИЩІ MATLAB

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КСА
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Обробка сигналів

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»  ЗВІТ до лабораторної роботи №3 з курсу: «Цифрові методи обробки сигналів і зображень» на тему: «ВЕЙВЛЕТ-ОБРОБКА СИГНАЛІВ У СЕРЕДОВИЩІ MATLAB» Мета роботи – ознайомитися з основними можливостями вейвлет-обробки реалізованими в середовищі MatLab, отримати навики розрахунку дискретного вейвлет-перетворення, декомпозиції сигналу на апроксимуючі і деталізуючи складові, вейвлет-очищення сигналів від шумів в середовищі MatLab. ЗАВДАННЯ 1. Ознайомитись з теоретичним матеріалом. 2. Скласти програму в середовищі MatLab згідно завдання. 2.1. Провести очищення сигналу від шуму з використанням вейвлет-процедури відповідно до завдання у Табл. 2. Сигнал зберігається у файлі Lab_3_варіант у змінній signal. Табл. 1. № Тип вейвлету Рівень розкладу Поріг Тип порогу Масштабування Сигнал  1. Добеші 3-го порядку 3 rigrsure жорсткий Тип 1 Lab_3_1.mat   РЕЗУЛЬТАТИ ВИКОНАННЯ РОБОТИ Лістинг програми: >> load C:\Lab_3_1;% Завантаження сигналу >> tn = (0 : length(signal)-1); % вісь часу >> w_name = 'db3'; % тип вейвлету >> Lev = 3;% рівень розкладу >> type = 'rigrsure';% поріг >> [Lo_D, Hi_D, Lo_R, Hi_R] = wfilters(w_name); % розрах-к фільтрів декомпозиції і реконструкції >> % розрахунок АЧХ фільтрів >> [h_D, f] = freqz(Lo_D, 1, 0:0.001:1, 2); >> h1_D = freqz(Hi_D, 1, 0:0.001:1, 2); >> [h_R, f] = freqz(Lo_R, 1, 0:0.001:1, 2); >> h1_R = freqz(Hi_R, 1, 0:0.001:1, 2); >> figure(1); plot(f, abs(h_D), f, abs(h1_D)); grid on;% графік АЧХ фільтрів декомпозиції >> figure(2); plot(f, abs(h_R), f, abs(h1_R)); grid on;% графік АЧХ фільтрів реконструкції >> [C, L] = wavedec(signal, Lev, w_name);% вейвлет-розклад сигналу >> cA3 = appcoef(C, L, w_name, Lev);% добування коефіцієнтів апроксимації сА3 >> [cD3 cD2 cD1] = detcoef(C, L, [3 2 1]);% добування коефіцієнтів деталізації сD3, cD2, cD1 >> % Побудова графіків коефіцієнтів розкладу >> figure(3); subplot(411); plot(cA3); grid on; xlim([0 L(1)-1]); ylabel('cA3'); >> subplot(412); plot(cD3); grid on; xlim([0 L(2)-1]); ylabel('cD3'); >> subplot(413); plot(cD2); grid on; xlim([0 L(3)-1]); ylabel('cD2'); >> A3 = wrcoef('a', C, L, w_name, 3); % Обчислення апроксимуючої складової А3 >> D3 = wrcoef('d', C, L, w_name, 3); % Обчислення деталізуючої складової D3 >> D2 = wrcoef('d', C, L, w_name, 2); % Обчислення деталізуючої складової D2 >> D1 = wrcoef('d', C, L, w_name, 1); % Обчислення деталізуючої складової D1 >> L_sig = length(signal);% Розмірність сигналу >> % Побудова графіків сигналу та його часових складових >> figure(4); subplot(511); plot(signal); grid on; xlim([0 L_sig-1]); ylabel('S(n)'); >> subplot(512); plot(A3); grid on; xlim([0 L_sig-1]); ylabel('A3'); >> subplot(513); plot(D3); grid on; xlim([0 L_sig-1]); ylabel('D3'); >> subplot(514); plot(D2); grid on; xlim([0 L_sig-1]); ylabel('D2'); >> subplot(515); plot(D1); grid on; xlim([0 L_sig-1]); ylabel('D1'); >> % Оцінка рівня шуму деталізуючих коефіцієнтів >> stdc = wnoisest(C, L, Lev); >> % Обчислення порогу для кожного рівня >> for ii = 1 : Lev; thr(ii) = thselect(detcoef(C, L, ii)/stdc, type); thr(ii) = thr(ii) * stdc; end; >> % Жорстке порогування коефіцієнтів cD1 >> for ii = 1 : length(cD1) if (abs(cD1(ii)) < thr(3)) cD1(ii) = 0; else cD1(ii) = cD1(ii); end; end; >> % Жорстке порогування коефіцієнтів cD2 >> for ii = 1 : length(cD2) if (abs(cD2(ii)) < thr(2)) cD2(ii) = 0; else cD2(ii) = cD2(ii); end; end; >> % Жорстке порогування коефіцієнтів cD3 >> for ii = 1 : length(cD3) if (abs(cD3(ii)) < thr(1)) cD3(ii) = 0; else cD3(ii) = cD3(ii); end; end; >> % Заміна первинних коефіцієнтів cD обчисленими >> cD = [cD3 cD2 cD1]; >> C(L(1) + 1 : end) = cD; >> % Побудова графіків коефіцієнтів після порогування >> figure(5); subplot(411); plot(0:L(1)-1, cA3); grid on; xlim([0 L(1)-1]); ylabel('cA3'); >> subplot(412); plot(0:L(2)-1, cD3); grid on; xlim([0 L(2)-1]); ylabel('cD3'); >> subplot(413); plot(0:L(3)-1, cD2); grid on; xlim([0 L(3...
Антиботан аватар за замовчуванням

15.06.2014 01:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини